home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / GIMP 2.6.8 / gimp-2.6.8-i686-setup.exe / {app} / share / gimp / 2.0 / scripts / chrome-logo.scm < prev    next >
Text File  |  2009-12-15  |  5KB  |  133 lines

  1. ;  CHROME-LOGOS
  2.  
  3. (define (apply-chrome-logo-effect img
  4.                                   logo-layer
  5.                                   offsets
  6.                                   bg-color)
  7.   (let* (
  8.         (offx1 (* offsets 0.4))
  9.         (offy1 (* offsets 0.3))
  10.         (offx2 (* offsets (- 0.4)))
  11.         (offy2 (* offsets (- 0.3)))
  12.         (feather (* offsets 0.5))
  13.         (width (car (gimp-drawable-width logo-layer)))
  14.         (height (car (gimp-drawable-height logo-layer)))
  15.         (layer1 (car (gimp-layer-new img width height RGBA-IMAGE "Layer 1" 100 DIFFERENCE-MODE)))
  16.         (layer2 (car (gimp-layer-new img width height RGBA-IMAGE "Layer 2" 100 DIFFERENCE-MODE)))
  17.         (layer3 (car (gimp-layer-new img width height RGBA-IMAGE "Layer 3" 100 NORMAL-MODE)))
  18.         (shadow (car (gimp-layer-new img width height RGBA-IMAGE "Drop Shadow" 100 NORMAL-MODE)))
  19.         (background (car (gimp-layer-new img width height RGB-IMAGE "Background" 100 NORMAL-MODE)))
  20.         (layer-mask (car (gimp-layer-create-mask layer1 ADD-BLACK-MASK)))
  21.         )
  22.  
  23.     (gimp-context-push)
  24.  
  25.     (script-fu-util-image-resize-from-layer img logo-layer)
  26.     (script-fu-util-image-add-layers img layer1 layer2 layer3 shadow background)
  27.     (gimp-context-set-background '(255 255 255))
  28.     (gimp-selection-none img)
  29.     (gimp-edit-fill layer1 BACKGROUND-FILL)
  30.     (gimp-edit-fill layer2 BACKGROUND-FILL)
  31.     (gimp-edit-fill layer3 BACKGROUND-FILL)
  32.     (gimp-edit-clear shadow)
  33.     (gimp-selection-layer-alpha logo-layer)
  34.     (gimp-drawable-set-visible logo-layer FALSE)
  35.     (gimp-drawable-set-visible shadow FALSE)
  36.     (gimp-drawable-set-visible background FALSE)
  37.     (gimp-context-set-background '(0 0 0))
  38.     (gimp-edit-fill layer1 BACKGROUND-FILL)
  39.     (gimp-selection-translate img offx1 offy1)
  40.     (gimp-selection-feather img feather)
  41.     (gimp-edit-fill layer2 BACKGROUND-FILL)
  42.     (gimp-selection-translate img (* 2 offx2) (* 2 offy2))
  43.     (gimp-edit-fill layer3 BACKGROUND-FILL)
  44.     (gimp-selection-none img)
  45.     (set! layer1 (car (gimp-image-merge-visible-layers img CLIP-TO-IMAGE)))
  46.     ; if the original image contained more than one visible layer:
  47.     (while (> (car (gimp-image-get-layer-position img layer1)) 
  48.               (car (gimp-image-get-layer-position img shadow)))
  49.       (gimp-image-raise-layer img layer1)
  50.     )
  51.     (gimp-invert layer1)
  52.     (gimp-layer-add-mask layer1 layer-mask)
  53.     (gimp-selection-layer-alpha logo-layer)
  54.     (gimp-context-set-background '(255 255 255))
  55.     (gimp-selection-feather img feather)
  56.     (gimp-edit-fill layer-mask BACKGROUND-FILL)
  57.     (gimp-context-set-background '(0 0 0))
  58.     (gimp-selection-translate img offx1 offy1)
  59.     (gimp-edit-fill shadow BACKGROUND-FILL)
  60.     (gimp-selection-none img)
  61.     (gimp-context-set-background bg-color)
  62.     (gimp-edit-fill background BACKGROUND-FILL)
  63.     (gimp-drawable-set-visible shadow TRUE)
  64.     (gimp-drawable-set-visible background TRUE)
  65.     (gimp-drawable-set-name layer1 (car (gimp-drawable-get-name logo-layer)))
  66.     (gimp-image-remove-layer img logo-layer)
  67.  
  68.     (gimp-context-pop)
  69.   )
  70. )
  71.  
  72.  
  73. (define (script-fu-chrome-logo-alpha img
  74.                                      logo-layer
  75.                                      offsets
  76.                                      bg-color)
  77.   (begin
  78.     (gimp-image-undo-group-start img)
  79.     (apply-chrome-logo-effect img logo-layer offsets bg-color)
  80.     (gimp-image-undo-group-end img)
  81.     (gimp-displays-flush)
  82.   )
  83. )
  84.  
  85. (script-fu-register "script-fu-chrome-logo-alpha"
  86.   _"C_hrome..."
  87.   _"Add a simple chrome effect to the selected region (or alpha)"
  88.   "Spencer Kimball"
  89.   "Spencer Kimball & Peter Mattis"
  90.   "1997"
  91.   "RGBA"
  92.   SF-IMAGE       "Image"                0
  93.   SF-DRAWABLE    "Drawable"             0
  94.   SF-ADJUSTMENT _"Offsets (pixels * 2)" '(10 2 100 1 10 0 1)
  95.   SF-COLOR      _"Background Color"     "lightgrey"
  96. )
  97.  
  98. (script-fu-menu-register "script-fu-chrome-logo-alpha"
  99.                          "<Image>/Filters/Alpha to Logo")
  100.  
  101.  
  102. (define (script-fu-chrome-logo text
  103.                                size
  104.                                font
  105.                                bg-color)
  106.   (let* (
  107.         (img (car (gimp-image-new 256 256 RGB)))
  108.         (b-size (* size 0.2))
  109.         (text-layer (car (gimp-text-fontname img -1 0 0 text b-size TRUE size PIXELS font)))
  110.         )
  111.     (gimp-image-undo-disable img)
  112.     (apply-chrome-logo-effect img text-layer (* size 0.1) bg-color)
  113.     (gimp-image-undo-enable img)
  114.     (gimp-display-new img)
  115.   )
  116. )
  117.  
  118. (script-fu-register "script-fu-chrome-logo"
  119.   _"C_hrome..."
  120.   _"Create a simplistic, but cool, chromed logo"
  121.   "Spencer Kimball"
  122.   "Spencer Kimball & Peter Mattis"
  123.   "1997"
  124.   ""
  125.   SF-STRING     _"Text"               "GIMP"
  126.   SF-ADJUSTMENT _"Font size (pixels)" '(100 2 1000 1 10 0 1)
  127.   SF-FONT       _"Font"               "Bodoni"
  128.   SF-COLOR      _"Background color"   "lightgrey"
  129. )
  130.  
  131. (script-fu-menu-register "script-fu-chrome-logo"
  132.                          "<Image>/File/Create/Logos")
  133.